Processing messages for attribute-value pair extraction

ABSTRACT

A device may process a message associated with an account to identify a first identifier that identifies a third party. The device may identify a match between the first identifier and transaction information related to an individual associated with the account. The transaction information may include a set of first identifiers that identify a respective set of third parties. The transaction information may facilitate identification of one or more messages that is likely to include account information. The device may tag the message with a second identifier based on the match. The device may receive, from another device, the message based on the message being tagged with the second identifier. The device may process the message to identify the account information related to another account. The device may extract identified account information from the message. The device may perform an action related to extracted account information or the message.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/131,597, filed Sep. 14, 2018 (now U.S. Pat. No. 10,909,536), which isa continuation of U.S. patent application Ser. No. 15/849,215, filedDec. 20, 2017 (now U.S. Pat. No. 10,083,441), which are incorporatedherein by reference.

BACKGROUND

A loyalty program is a marketing program designed to encourage customersto continue to transact with an organization associated with the loyaltyprogram. Customers who participate in a loyalty program may beassociated with a loyalty account, and may be offered an allotment ofloyalty points, associated with the loyalty account, that the customerscan apply to future transactions.

SUMMARY

According to some possible implementations, a device may comprise one ormore memories; and one or more processors, communicatively coupled tothe one or more memories, configured to process a message associatedwith an account to identify a first identifier that identifies a thirdparty with which the message is associated. The one or more processorsmay be configured to identify a match between the first identifier andtransaction information related to an individual associated with theaccount. The transaction information may include a set of firstidentifiers that identify a respective set of third parties related to aset of transactions associated with the individual. The transactioninformation may facilitate identification of one or more messages thatis likely to include account information. The one or more processors maybe configured to tag the message with a second identifier based on thematch between the first identifier and at least one first identifier ofthe set of first identifiers included in the transaction information.The second identifier may identify the message as being associated witha third party of the respective set of third parties related to the setof transactions associated with the individual.

The one or more processors may be configured to receive, from anotherdevice, the message based on the message being tagged with the secondidentifier. The other device may be associated with the account. The oneor more processors may be configured to process the message to identifythe account information related to another account associated with thethird party. The one or more processors may be configured to extractidentified account information from the message after processing themessage to identify the account information. The one or more processorsmay be configured to perform an action related to extracted accountinformation or the message after extracting the identified accountinformation from the message.

According to some possible implementations, a non-transitorycomputer-readable medium may store one or more instructions that, whenexecuted by one or more processors, cause the one or more processors toprocess a message associated with an electronic messaging account of anindividual to identify a first identifier that identifies a third partywith which the message is associated. The first identifier may include adomain name of the third party, or a text name of the third party. Theone or more instructions, when executed by the one or more processors,may cause the one or more processors to identify a match between thefirst identifier and a set of first identifiers related to a set ofthird parties with which a set of transactions is associated. The set oftransactions may be associated with the individual associated with theelectronic messaging account.

The one or more instructions, when executed by the one or moreprocessors, may cause the one or more processors to tag the message witha second identifier based on the match between the first identifier andthe set of first identifiers. The second identifier may identify themessage as being associated with the set of third parties related to theset of transactions associated with the individual. The one or moreinstructions, when executed by the one or more processors, may cause theone or more processors to receive, from another device associated withthe electronic messaging account, the message based on the message beingtagged with the second identifier. The one or more instructions, whenexecuted by the one or more processors, may cause the one or moreprocessors to process the message to identify account informationrelated to a user account associated with the third party.

The one or more instructions, when executed by the one or moreprocessors, may cause the one or more processors to extract the accountinformation from the message after processing the message to identifythe account information. The one or more instructions, when executed bythe one or more processors, may cause the one or more processors tostore the account information after extracting the account informationfrom the message. The one or more instructions, when executed by the oneor more processors, may cause the one or more processors to perform anaction related to the account information or the message after storingthe account information.

According to some possible implementations, a method may comprisereceiving, by a device, access information related to an account. Theaccess information may provide the device with access to a set ofmessages associated with the account. The method may compriseprocessing, by the device, the set of messages associated with theaccount based on receiving the access information. The method maycomprise identifying, by the device and based on processing the set ofmessages, particular information in one or more messages of the set ofmessages. The particular information may include at least one of domaininformation for a third party, or information that identifies the thirdparty. The method may comprise identifying, by the device, a matchbetween the particular information and transaction informationassociated with the account. The transaction information may include theparticular information associated with a set of third parties related toa set of transactions associated with the account.

The method may include tagging, by the device and to form taggedmessages, a subset of the one or more messages with a first identifierbased on the match between the particular information associated withthe third party and the particular information associated with the setof third parties included in the transaction information. The firstidentifier may identify the tagged messages as being associated with theset of third parties related to the set of transactions associated withthe account. The method may comprise identifying, by the device, asubset of tagged messages that include a first attribute-value pair or asecond attribute-value pair. The method may comprise storing, by thedevice, the subset of tagged messages in a data structure. The methodmay comprise receiving, by the device and from a user device, a requestfor account information relating to another account associated with thethird party. The method may comprise providing, by the device and fordisplay via the user device, the account information relating to thethird party. The account information relating to the third party mayinclude at least one of: the first attribute-value pair, or the secondattribute-value pair.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B are diagrams of an overview of an example implementationdescribed herein;

FIG. 2 is a diagram of an example environment in which systems and/ormethods, described herein, may be implemented;

FIG. 3 is a diagram of example components of one or more devices of FIG.2;

FIG. 4 is a flow chart of an example process for processing messages forattribute-value pair extraction;

FIG. 5 is a diagram of an example implementation relating to the exampleprocess shown in FIG. 4; and

FIG. 6 is a diagram of an example implementation relating to the exampleprocess shown in FIG. 4.

DETAILED DESCRIPTION

The following detailed description of example implementations refers tothe accompanying drawings. The same reference numbers in differentdrawings may identify the same or similar elements.

An individual may sign up for a loyalty or rewards program for anorganization (e.g., a retailer, a club, etc.). When the individual signsup for the loyalty or rewards program, account information (e.g., ausername, an account balance, etc.) for the loyalty or rewards programmay be provided to the individual via a message. For example, theindividual may not be provided with a physical card that includes theindividual's account information and/or that can be used when completinga transaction to receive loyalty or rewards points. Rather, theindividual may have to save the account information separately (e.g., asan archived or downloaded message), may have to write the accountinformation on a piece of paper or on a note application on a userdevice, may have to search through an inbox of messages to locate theaccount information, and/or the like, to have access to the accountinformation when the user wants to use the account information whencompleting a transaction. This consumes time of the individual, consumesprocessing resources of a device that accesses or stores an inbox ofmessages (e.g., via the individual searching the inbox), and/or resultsin unclaimed loyalty and/or rewards points for the individual (e.g., bythe individual forgetting to use the account information when completinga transaction).

Some implementations, described herein, provide an accountidentification platform that is capable of processing messages in aninbox to identify accounts for various loyalty and/or rewards programsand corresponding account information for the accounts. In addition, theaccount identification platform may populate a virtual wallet with theaccount information for the accounts after extracting the accountinformation from the messages. This facilitates easier and/or morefrequent use of the accounts, thereby increasing a quantity of points oran amount of value received by the individual. In addition, this reducesor eliminates lost value to an individual through unclaimed and/orunused loyalty and/or rewards points. Further, this conserves processingresources that would otherwise be consumed by an individual searching aninbox for a message that includes account information. Further, thisimproves an efficiency of storing account information and/or using theaccount information by populating an electronic wallet with extractedaccount information.

FIGS. 1A and 1B are diagrams of an overview of an example implementation100 described herein. As shown in FIG. 1A, example implementation 100may include an account identification platform, a server device, and auser device. As shown by reference number 110, the accountidentification platform may receive, from the user device, accessinformation that can be used to access an account associated withmessages to be processed. For example, the account may be an emailaccount, a text messaging account, an instant messaging account, and/orthe like. The access information may include a user name/passwordcombination, a security token (e.g., that provides the accountidentification platform with limited access to an account), and/or thelike.

As shown by reference number 120, the account identification platformmay process messages related to an account (e.g., the email account, thetext messaging account, the instant messaging account, etc.). Forexample, the server device may store the messages to be processed by theaccount identification platform and the account identification platformmay communicate with the server device to process the messages.Continuing with the previous example, the account identificationplatform may process the messages using a natural language processingtechnique, an image processing technique, an audio processing technique,and/or the like.

The account identification platform may perform multiple sets ofprocessing. For example, the account identification platform may performa first set of processing to identify one or more messages associatedwith particular third parties (e.g., a particular retailer, a particularclub, etc.) by identifying a source of the message, a domain namerelated to the message, and/or the like. Continuing with the previousexample, the account identification platform may perform a second set ofprocessing to identify a subset of the messages associated with theparticular third parties that include terms and/or phrases that indicatethat the message is associated with a loyalty program, a rewardsprogram, and/or the like (e.g., by identifying account information forthe loyalty program, the rewards program, etc.).

As shown by reference number 130, the account identification platformmay, as a result of processing the messages, identify messages fromparticular sources (e.g., shown as “grocerystore.com” and“hotelchain.com”), that include particular terms and/or phrases (e.g.,shown as “rewards account,” “account #,” “balance,” etc.), values thatcorrespond to the identified terms and/or phrases (e.g., shown as“120ksdk,” “9eksldp,” “3,700,” and “10,000”), and/or the like. Forexample, the information identified in the messages may be associatedwith one or more third party accounts, such as loyalty accounts, rewardsaccounts, and/or the like.

As shown in FIG. 1B, and as shown by reference number 140, the accountidentification platform may provide third party account information tothe user device. For example, the account identification platform mayprovide the third party account information to an electronic walletassociated with the user device. The third party information mayinclude, for example, terms and/or phrases identified in the messages(e.g., an account identifier, a balance of a third party account, etc.).As shown by reference number 150, the user device may store the thirdparty account information in a data structure and/or may provide thethird party account information for display. For example, the userdevice may display third party account information that identifies thethird parties associated with the third party accounts identified by theaccount identification platform (e.g., shown as “grocerystore.com” and“hotelchain.com”), corresponding account identifiers for the third partyaccounts (e.g., shown as “120ksdk” and “93eksldp”), correspondingbalances for the third party accounts (e.g., “3,000 points” and “10,000points”), and/or the like. The third party account information may beincluded in an electronic wallet or other application associated withthe user device.

In this way, the account identification platform may populate anelectronic wallet or other application with third party accountinformation for various third party accounts. This improves use of thethird party account information via aggregation of the third partyaccount information. In addition, this conserves processing resourcesrelated to locating and using the third party account information byfacilitating a quick and easy way for a user of the user device tolocate and use the third party account information. Further, thisimproves storage of third party account information by organizing thethird party account information into an electronic wallet or otherapplication, which may include a dedicated application for storing theaggregated third party account information.

As indicated above, FIGS. 1A and 1B are provided merely as an example.Other examples are possible and may differ from what was described withregard to FIGS. 1A and 1B.

FIG. 2 is a diagram of an example environment 200 in which systemsand/or methods, described herein, may be implemented. As shown in FIG.2, environment 200 may include a set of user devices 210 (referred tocollectively as “user devices 210” and individually as “user device210”), a set of server devices 220 (referred to collectively as “serverdevices 220” and individually as “server device 220”), and accountidentification platform 230 provided in cloud computing environment 232that includes a set of computing resources 234. Devices of environment200 may interconnect via wired connections, wireless connections, or acombination of wired and wireless connections.

User device 210 includes one or more devices capable of receiving,generating, storing, processing, and/or providing information related toidentifying an account identified in a message. For example, user device210 may include a mobile phone (e.g., a smart phone, a radiotelephone,etc.), a laptop computer, a tablet computer, a handheld computer, agaming device, a wearable communication device (e.g., a smartwristwatch, a pair of smart eyeglasses, etc.), or a similar type ofdevice. In some implementations, user device 210 may provide, to accountidentification platform 230 access information related to an account ofmessages associated with a user of user device 210, as describedelsewhere herein. Additionally, or alternatively, user device 210 mayreceive, from account identification platform 230, a result ofprocessing messages to identify third party accounts identified in themessages, as described elsewhere herein.

Server device 220 includes one or more devices capable of receiving,generating, storing, processing, and/or providing information related toidentifying an account identified in a message. For example, serverdevice 220 may include a server (e.g., in a data center or a cloudcomputing environment), a data center (e.g., a multi-server micro datacenter), a workstation computer, a virtual machine (VM) provided in acloud computing environment, or a similar type of device. In someimplementations, server device 220 may store messages to be processed byaccount identification platform 230, as described elsewhere herein.Additionally, or alternatively, server device 220 may permit accountidentification platform 230 to process messages stored by server device220 (e.g., based on account identification platform 230 providing accessinformation related to an account associated with the messages), asdescribed elsewhere herein.

Account identification platform 230 includes one or more devices capableof receiving, generating, storing, processing, and/or providinginformation related to identifying an account identified in a message.For example, account identification platform 230 may include a cloudserver or a group of cloud servers. In some implementations, accountidentification platform 230 may be designed to be modular such thatcertain software components can be swapped in or out depending on aparticular need. As such, account identification platform 230 may beeasily and/or quickly reconfigured for different uses.

In some implementations, as shown, account identification platform 230may be hosted in cloud computing environment 232. Notably, whileimplementations described herein describe account identificationplatform 230 as being hosted in cloud computing environment 232, in someimplementations, account identification platform 230 may not becloud-based (i.e., may be implemented outside of a cloud computingenvironment) or may be partially cloud-based.

Cloud computing environment 232 includes an environment that hostsaccount identification platform 230. Cloud computing environment 232 mayprovide computation, software, data access, storage, and/or otherservices that do not require end-user knowledge of a physical locationand configuration of a system and/or a device that hosts accountidentification platform 230. As shown, cloud computing environment 232may include a group of computing resources 234 (referred to collectivelyas “computing resources 234” and individually as “computing resource234”).

Computing resource 234 includes one or more personal computers,workstation computers, server devices, or another type of computationand/or communication device. In some implementations, computing resource234 may host account identification platform 230. The cloud resourcesmay include compute instances executing in computing resource 234,storage devices provided in computing resource 234, data transferdevices provided by computing resource 234, etc. In someimplementations, computing resource 234 may communicate with othercomputing resources 234 via wired connections, wireless connections, ora combination of wired and wireless connections.

As further shown in FIG. 2, computing resource 234 may include a groupof cloud resources, such as one or more applications (“APPs”) 234-1, oneor more virtual machines (“VMs”) 234-2, one or more virtualized storages(“VSs”) 234-3, or one or more hypervisors (“HYPs”) 234-4.

Application 234-1 includes one or more software applications that may beprovided to or accessed by one or more devices of environment 200.Application 234-1 may eliminate a need to install and execute thesoftware applications on devices of environment 200. For example,application 234-1 may include software associated with accountidentification platform 230 and/or any other software capable of beingprovided via cloud computing environment 232. In some implementations,one application 234-1 may send/receive information to/from one or moreother applications 234-1, via virtual machine 234-2.

Virtual machine 234-2 includes a software implementation of a machine(e.g., a computer) that executes programs like a physical machine.Virtual machine 234-2 may be either a system virtual machine or aprocess virtual machine, depending upon use and degree of correspondenceto any real machine by virtual machine 234-2. A system virtual machinemay provide a complete system platform that supports execution of acomplete operating system (“OS”). A process virtual machine may executea single program, and may support a single process. In someimplementations, virtual machine 234-2 may execute on behalf of a user(e.g., a user of user device 210), and may manage infrastructure ofcloud computing environment 232, such as data management,synchronization, or long-duration data transfers.

Virtualized storage 234-3 includes one or more storage systems and/orone or more devices that use virtualization techniques within thestorage systems or devices of computing resource 234. In someimplementations, within the context of a storage system, types ofvirtualizations may include block virtualization and filevirtualization. Block virtualization may refer to abstraction (orseparation) of logical storage from physical storage so that the storagesystem may be accessed without regard to physical storage orheterogeneous structure. The separation may permit administrators of thestorage system flexibility in how the administrators manage storage forend users. File virtualization may eliminate dependencies between dataaccessed at a file level and a location where files are physicallystored. This may enable optimization of storage use, serverconsolidation, and/or performance of non-disruptive file migrations.

Hypervisor 234-4 provides hardware virtualization techniques that allowmultiple operating systems (e.g., “guest operating systems”) to executeconcurrently on a host computer, such as computing resource 234.Hypervisor 234-4 may present a virtual operating platform to the guestoperating systems, and may manage the execution of the guest operatingsystems. Multiple instances of a variety of operating systems may sharevirtualized hardware resources.

Network 240 includes one or more wired and/or wireless networks. Forexample, network 240 may include a cellular network (e.g., a long-termevolution (LTE) network, a code division multiple access (CDMA) network,a 3G network, a 4G network, a 5G network, or another type of cellularnetwork), a public land mobile network (PLMN), a local area network(LAN), a wide area network (WAN), a metropolitan area network (MAN), atelephone network (e.g., the Public Switched Telephone Network (PSTN)),a private network, an ad hoc network, an intranet, the Internet, a fiberoptic-based network, a cloud computing network, and/or the like, and/ora combination of these or other types of networks.

The number and arrangement of devices and networks shown in FIG. 2 areprovided as an example. In practice, there may be additional devicesand/or networks, fewer devices and/or networks, different devices and/ornetworks, or differently arranged devices and/or networks than thoseshown in FIG. 2. Furthermore, two or more devices shown in FIG. 2 may beimplemented within a single device, or a single device shown in FIG. 2may be implemented as multiple, distributed devices. Additionally, oralternatively, a set of devices (e.g., one or more devices) ofenvironment 200 may perform one or more functions described as beingperformed by another set of devices of environment 200.

FIG. 3 is a diagram of example components of a device 300. Device 300may correspond to user device 210, server device 220, accountidentification platform 230, and/or computing resource 234. In someimplementations, user device 210, server device 220, accountidentification platform 230, and/or computing resource 234 may includeone or more devices 300 and/or one or more components of device 300. Asshown in FIG. 3, device 300 may include a bus 310, a processor 320, amemory 330, a storage component 340, an input component 350, an outputcomponent 360, and a communication interface 370.

Bus 310 includes a component that permits communication among thecomponents of device 300. Processor 320 is implemented in hardware,firmware, or a combination of hardware and software. Processor 320 takesthe form of a central processing unit (CPU), a graphics processing unit(GPU), an accelerated processing unit (APU), a digital signal processor(DSP), a microprocessor, a microcontroller, a field-programmable gatearray (FPGA), an application-specific integrated circuit (ASIC), oranother type of processing component. In some implementations, processor320 includes one or more processors capable of being programmed toperform a function. Memory 330 includes a random access memory (RAM), aread only memory (ROM), and/or another type of dynamic or static storagedevice (e.g., a flash memory, a magnetic memory, and/or an opticalmemory) that stores information and/or instructions for use by processor320.

Storage component 340 stores information and/or software related to theoperation and use of device 300. For example, storage component 340 mayinclude a hard disk (e.g., a magnetic disk, an optical disk, amagneto-optic disk, and/or a solid state disk), a compact disc (CD), adigital versatile disc (DVD), a floppy disk, a cartridge, a magnetictape, and/or another type of non-transitory computer-readable medium,along with a corresponding drive.

Input component 350 includes a component that permits device 300 toreceive information, such as via user input (e.g., a touch screendisplay, a keyboard, a keypad, a mouse, a button, a switch, and/or amicrophone). Additionally, or alternatively, input component 350 mayinclude a sensor for sensing information (e.g., a global positioningsystem (GPS) component, an accelerometer, a gyroscope, and/or anactuator). Output component 360 includes a component that providesoutput information from device 300 (e.g., a display, a speaker, and/orone or more light-emitting diodes (LEDs)).

Communication interface 370 includes a transceiver-like component (e.g.,a transceiver and/or a separate receiver and transmitter) that enablesdevice 300 to communicate with other devices, such as via a wiredconnection, a wireless connection, or a combination of wired andwireless connections. Communication interface 370 may permit device 300to receive information from another device and/or provide information toanother device. For example, communication interface 370 may include anEthernet interface, an optical interface, a coaxial interface, aninfrared interface, a radio frequency (RF) interface, a universal serialbus (USB) interface, a Wi-Fi interface, a cellular network interface, orthe like.

Device 300 may perform one or more processes described herein. Device300 may perform these processes based on processor 320 executingsoftware instructions stored by a non-transitory computer-readablemedium, such as memory 330 and/or storage component 340. Acomputer-readable medium is defined herein as a non-transitory memorydevice. A memory device includes memory space within a single physicalstorage device or memory space spread across multiple physical storagedevices.

Software instructions may be read into memory 330 and/or storagecomponent 340 from another computer-readable medium or from anotherdevice via communication interface 370. When executed, softwareinstructions stored in memory 330 and/or storage component 340 may causeprocessor 320 to perform one or more processes described herein.Additionally, or alternatively, hardwired circuitry may be used in placeof or in combination with software instructions to perform one or moreprocesses described herein. Thus, implementations described herein arenot limited to any specific combination of hardware circuitry andsoftware.

The number and arrangement of components shown in FIG. 3 are provided asan example. In practice, device 300 may include additional components,fewer components, different components, or differently arrangedcomponents than those shown in FIG. 3. Additionally, or alternatively, aset of components (e.g., one or more components) of device 300 mayperform one or more functions described as being performed by anotherset of components of device 300.

FIG. 4 is a flow chart of an example process 400 for processing messagesfor attribute-value pair extraction. In some implementations, one ormore process blocks of FIG. 4 may be performed by account identificationplatform 230. In some implementations, one or more process blocks ofFIG. 4 may be performed by another device or a group of devices separatefrom or including account identification platform 230, such as userdevice 210 or server device 220.

As shown in FIG. 4, process 400 may include receiving access informationthat permits access to messages associated with an account (block 410).For example, account identification platform 230 may receive, from userdevice 210, access information that permits access to messagesassociated with an account. In some implementations, accountidentification platform 230 may receive the access information based onrequesting the access information, based on a user of user device 210inputting the access information (e.g., via a user interface, anapplication executing on user device 210, etc.), and/or the like.

In some implementations, the access information may include a set ofcredentials associated with an account, a username/password combination,a security token (e.g., that provides limited access to an account),and/or the like. For example, the access information may permit accountidentification platform 230 to access messages associated with anaccount (e.g., for a limited amount of time, stored in a particularfolder associated with the account, such as an inbox or a spam folder,etc.).

In some implementations, a message may include an email, a text message,an instant message, a voicemail, a push notification, and/or the like.In some implementations, the account may include an electronic messagingaccount such as, for example, an email account, an instant messagingaccount, a text messaging account, a voicemail account, and/or the like.In some implementations, server device 220 may host the account (e.g.,may store a message, may store information used to verify accessinformation, etc.).

In some implementations, account identification platform 230 may receivethe access information related to accessing the account prior toprocessing a message associated with the account. In someimplementations, account identification platform 230 may access theaccount by providing, to another device (e.g., server device 220), theaccess information after receiving the access information.

In this way, account identification platform 230 may receive accessinformation that permits access to messages prior to processing themessages.

As further shown in FIG. 4, process 400 may include processing themessages to identify a set of messages associated with another account(block 420). For example, account identification platform 230 mayprocess the messages to identify a set of messages associated withanother account (e.g., a third party account associated with a thirdparty). In some implementations, the other account may be a user accountassociated with points (e.g., loyalty points, rewards points, etc.) oranother value. In some implementations, the other account may be a useraccount associated with a third party (e.g., different than a party withwhich the account related to the messages is associated) that provides amembership program, loyalty program, a rewards program, and/or the likewith which the other account is associated.

In some implementations, account identification platform 230 may processa message associated with the account to identify an identifier thatidentifies a third party with which the message is associated. Forexample, the identifier may include a name of an organization, a name ofa loyalty/rewards/membership program, a domain name, and/or the like. Insome implementations, account identification platform 230 may analyzemetadata or other data associated with the message to identify theidentifier.

In some implementations, account identification platform 230 may processmultiple messages associated with the account based on receiving theaccess information. In some implementations, account identificationplatform 230 may identify, based on processing the multiple messages,particular information in one or more of the multiple messages. Forexample, the particular information may include domain information(e.g., a domain name) for a third party and/or or information thatidentifies the third party, such as a name of the third party, a logo ofthe third party, and/or the like.

In some implementations, account identification platform 230 may processtext associated with a message using a text processing technique, suchas a natural language processing technique, a text analysis technique, acomputational linguistics technique, and/or the like. For example,account identification platform 230 may process text to identify a term,a phrase, a symbol, and/or the like included in a message. Additionally,or alternatively, account identification platform 230 may process audioassociated with a message using an audio processing technique, such as aspeech-to-text technique, an automatic speech recognition (ASR)technique, a computer speech recognition technique, and/or the like. Forexample, account identification platform 230 may process audio toidentify a term and/or phrase included in the audio. Additionally, oralternatively, account identification platform 230 may process an imageassociated with a message using an image processing technique, such as acomputer vision technique, an optical character recognition (OCR)technique, a feature detection technique, and/or the like. For example,account identification platform 230 may process an image to identify aterm, a phrase, a symbol, a logo, and/or the like included in an imagein a message.

As a specific example, in some implementations, account identificationplatform 230 may process a message to identify a domain name thatincludes an identifier associated with a third party (e.g., a name ofthe third party, a website of the third party, etc.). Additionally, oralternatively, and as another example, account identification platform230 may process a message to identify text that includes an identifierassociated with a third party. Additionally, or alternatively, and asanother example, account identification platform 230 may process amessage to identify an image that includes an identifier associated witha third party.

In some implementations, account identification platform 230 mayidentify the messages associated with the account prior to processingone or more of the messages. For example, account identificationplatform 230 may identify messages in an inbox of the account, messagesthat have been archived, and/or the like.

In some implementations, account identification platform 230 maydetermine that one or more of the messages are to be processed and/orthat one or more other messages are not to be processed based oninformation associated with the one or more messages and/or the one ormore other messages. For example, account identification platform 230may identify messages that have been tagged as private by a user of userdevice 210 (e.g., indicating that the messages are not to be processed).In some implementations, account identification platform 230 may processonly those messages associated with one of a predetermined identifierdeemed to be associated with a relevant third party.

Additionally, or alternatively, and as another example, accountidentification platform 230 may use machine learning to identifymessages that are not to be processed (e.g., messages that are notlikely to be associated with a third party account, such as a rewardsaccount or a loyalty account). Continuing with the previous example,account identification platform 230 may use machine learning to identifymessages that are not to be processed based on terms and/or phrasesincluded in the subjects of the messages (e.g., where the terms and/orphrases indicate that the messages are likely personal messages that auser associated with the account would want to be kept private, are notassociated with a loyalty program or a rewards program, etc.), aquantity of messages exchanged in a chain of messages (e.g., where athreshold quantity of messages may indicate that the messages arepersonal rather than related to a loyalty program or a rewards program),and/or the like.

This improves processing of messages and/or conserves processingresources of account identification platform 230 by reducing a quantityof messages that account identification platform 230 process. Further,using machine learning facilitates processing of structured orunstructured data related to the messages, thereby reducing oreliminating a need for manual review by a human actor. Further, thisfacilitates processing of hundreds, thousands, millions, or moremessages, thereby facilitating processing of a higher quantity ofmessages and/or in a shorter amount of time than a human actor.

Additionally, or alternatively, and as additional examples, accountidentification platform 230 may identify messages that are not to beprocessed based on the messages being from particular sources (e.g.,identified in a data structure input by a user of user device 210), afolder into which the messages are organized, a set of rules, and/or thelike. In some implementations, account identification platform 230 mayprocess the one or more messages after determining that the one or moremessages are to be processed.

In some implementations, account identification platform 230 mayidentify a match between an identifier included in a message andtransaction information related to an individual associated with theaccount. In some implementations, transaction information may be relatedto a transaction associated with an individual. For example, transactioninformation may identify an organization associated with a transaction,a timestamp of a transaction, a value related to a transaction, and/orthe like. In some implementations, transaction information may include aset of identifiers that identify a set of third parties related to a setof transactions associated with an individual. In some implementations,a set of identifiers may be included in a data structure and accountidentification platform 230 may identify a match between an identifierincluded in a message and an identifier included in the set ofidentifiers using the data structure. For example, accountidentification platform 230 may identify a match between an identifierfor a third party included in a message and a set of third partiesidentified in a data structure.

By identifying a match between an identifier associated with a messageand an identifier included in transaction information, accountidentification platform 230 can distinguish between messages that have ahigher likelihood of including account information and messages thathave a higher likelihood of being spam messages, that have a higherlikelihood of being personal messages, and/or the like. This conservesprocessing resources of account identification platform 230 by reducingor eliminating a need for account identification platform 230 to processall messages associated with an account for account information and/orby facilitating selective processing of messages for accountinformation.

In some implementations, account identification platform 230 may performa comparison of an identifier, for a third party, included in a messageand a set of identifiers, for a set of third parties (e.g., a set ofidentifiers included in a data structure, associated with a set oftransactions, etc.). In some implementations, account identificationplatform 230 may determine that an identifier included in a message isincluded in a set of identifiers related to a set of transactions basedon a result of performing a comparison (e.g., where the result indicatesa match).

In some implementations, account identification platform 230 may tag amessage after processing the message. For example, accountidentification platform 230 may tag a message with another identifier(e.g., based on a match between an identifier included in the messageand a set of identifiers included in transaction information). Forexample, the other identifier may identify the message as beingassociated with a set of third parties related to a set of transactionsassociated with an individual (e.g., a set of third parties identifiedby the set of identifiers). In some implementations, by tagging amessage, account identification platform 230 may form a tagged message.For example, a tagged message may be associated with a third partyrelated to a transaction associated with an individual.

In some implementations, account identification platform 230 may tag amessage within an account. In some implementations, accountidentification platform 230 may configure a flag, a label, and/or thelike associated with a message to tag a message. Additionally, oralternatively, account identification platform 230 may store informationidentifying tagged messages (e.g., in server device 220). In someimplementations, account identification platform 230 may store, in adata structure, information identifying a message to tag the message.Additionally, or alternatively, server device 220 (e.g., on whichmessages are stored) may store information identifying tagged messages.

In some implementations, account identification platform 230 mayreceive, from server device 220 associated with the account, a messagebased on the message being tagged. For example, account identificationplatform 230 may receive a tagged message from server device 220 basedon the tagged message being tagged with an identifier that identifiesthe tagged messages as being associated with one or more third partiesidentified in transaction information. This conserves processingresources and/or memory resources of account identification platform 230by reducing or eliminating a need for account identification platform230 to receive all messages associated with an account. In this way,tagging messages functions as an initial filter to receiving a message.

In some implementations, account identification platform 230 may receivea message from server device 220 to store the message. For example,storing the message reduces or eliminates a need for accountidentification platform 230 to repeatedly communicate with server device220, thereby conserving processing resources of server device 220,facilitating on-demand display of the message, and/or the like.Additionally, or alternatively, account identification platform 230 mayreceive a portion of a message (e.g., a body of a message), therebyreducing or eliminating further processing of sensitive information,such as information that identifies a sender of a message.

In some implementations, account identification platform 230 may receivethe message based on requesting the message. For example, accountidentification platform 230 may receive a tagged message based onrequesting tagged messages from server device 220, based on sending arequest to server device 220 that identifies tagged messages, and/or thelike. Additionally, or alternatively, account identification platform230 may receive the message via an application programing interface(API) associated with an account and/or server device 220 (e.g., basedon requesting a message associated with a particular third party, suchas a third party identified in transaction information, a message notidentified as spam by server device 220, etc.). This reduces oreliminates a need for account identification platform 230 to processmessages to identify a message associated with the particular thirdparty, thereby conserving processing resources of account identificationplatform 230.

In some implementations, account identification platform 230 mayrequest, from another device (e.g., server device 220), a tagged messageafter tagging one or more messages associated with an account. In someimplementations, account identification platform 230 may receive taggedmessages prior to identifying a subset of tagged messages that includeaccount information associated with an account related to a third party(e.g., associated with an account related to a loyalty program, arewards program, etc.). For example, account identification platform 230may request, via an API, a message configured with a particular flag, amessage identified in a data structure associated with accountidentification platform 230, a message not identified as spam or as apersonal message by server device 220, and/or the like.

In some implementations, account identification platform 230 may processa message to identify account information related to the other accountassociated with a third party. For example, account identificationplatform 230 may process a tagged message received from server device220. In some implementations, the account information related to theother account may include an account identifier (e.g., an accountnumber, a username, etc.), a points or value balance related to theother account (e.g., a total quantity of points related to the otheraccount, a quantity of points earned for a transaction, etc.), thirdparty information associated with a third party with which the otheraccount is associated (e.g., a name of the third party, a logo for thethird party, etc.), and/or the like. In some implementations, the otheraccount may be an account for a membership program, a loyalty program, arewards program, and/or the like.

In some implementations, account identification platform 230 may processa message (e.g., a tagged message) to identify account information in amanner similar to that described elsewhere herein. For example, accountidentification platform 230 may process text, audio, an image and/or thelike associated with a tagged message.

In some implementations, account identification platform 230 mayidentify multiple messages that include account information. In thiscase, account identification platform 230 may select the most recentmessage from which to extract the account information. In this way,account identification platform 230 may more accurately identify accountinformation, such as a balance of points or a value related to anaccount relative to selecting a message that is not the most recentmessage.

In some implementations, account identification platform 230 mayidentify a tagged message that includes one or more attribute-valuepairs. For example, an attribute-value pair may include a combination ofa term and/or phrase and a value (e.g., a combination of the phrase“account number” and an account number, a combination of the phrase“rewards points” and a balance of rewards points, etc.).

In some implementations, account identification platform 230 may store amessage that includes account information for the other account. Forexample, account identification platform 230 may store messages (e.g.,tagged messages) that include account information related to a loyaltyand/or rewards program associated with a third party identified intransaction information. In some implementations, account identificationplatform 230 may store a message, or information identifying themessage, in a data structure. For example, account identificationplatform 230 may store a message that includes a particularattribute-value pair.

In this way, account identification platform 230 may process themessages to identify account information prior to storing the accountinformation.

As further shown in FIG. 4, process 400 may include storing accountinformation related to the other account after processing the messages(block 430). For example, account identification platform 230 may storeaccount information related to the other account after processing themessages. In some implementations, account identification platform 230may store the account information in memory resources of accountidentification platform 230, in a data structure, and/or the like.

In some implementations, account identification platform 230 may extractthe account information from a message after processing the message toidentify the account information (e.g., may copy the account informationfrom the message). For example, account identification platform 230 maystore the account information after extracting the account informationfrom the message. In some implementations, account identificationplatform 230 may encrypt the account information after extracting theaccount information. Additionally, or alternatively, accountidentification platform 230 may delete the message after encrypting theaccount information. Additionally, or alternatively, accountidentification platform 230 may delete other messages that do notcontain account information (e.g., other tagged messages received fromserver device 220 that do not contain account information).

In some implementations, account identification platform 230 maycommunicate with server device 220 to confirm account informationextracted from a message. For example, account identification platform230 may provide extracted account information to server device 220 toconfirm the extracted account information. This reduces or eliminatesstoring of inaccurate account information by account identificationplatform 230. In addition, this improves an accuracy of extractedaccount information relative to not confirming the account information.

In this way, account identification platform 230 may store accountinformation related to the other account after processing the messages.

As further shown in FIG. 4, process 400 may include performing an actionrelated to the account information, the other account, and/or themessages (block 440). For example, account identification platform 230may perform an action related to the account information, the otheraccount, and/or the messages.

In some implementations, account identification platform 230 may performan action related to the account information, the other account, and/orthe message after extracting the account information from the message.Additionally, or alternatively, account identification platform 230 mayperform an action related to the account information, the other account,and/or the message after storing the account information.

In some implementations, account identification platform 230 may receivea request (e.g., from user device 210) for account information relatedto the other account associated with a third party. For example, a usermay request, via a user interface associated with an applicationexecuting on user device 210, account information related to the otheraccount. In some implementations, account identification platform 230may perform, based on the request, an action to provide, for display viauser device 210, the account information related to the other account.Additionally, or alternatively, account identification platform 230 mayautomatically perform (e.g., periodically, based on a trigger, etc.) anaction to provide, for display via user device 210, the accountinformation related to the other account. In some implementations,account identification platform 230 may provide the account informationfor display to facilitate use of the account information when completinga transaction.

In some implementations, the account information related to the otheraccount may include an attribute-value pair. For example, the accountinformation may include an account identifier for the other accountand/or text indicating that the account identifier is associated withthe other account (e.g., the text “account number” and a correspondingaccount number for the other account).

In some implementations, account identification platform 230 mayidentify the account information based on location informationassociated with user device 210 that is associated with the otheraccount. In this case, account identification platform 230 may provide,for display via user device 210, account information for the otheraccount that is associated with the location of user device 210. In someimplementations, account identification platform 230 may receivelocation information that identifies a location of a user device 210that is associated with an individual. In this case, accountidentification platform 230 may determine the location of user device210 associated with the individual based on the location information. Insome implementations, account identification platform 230 may provide anotification, to user device 210 for display, that identifies the otheraccount.

In this case, the other account may be associated with the location, andthe notification may include the account information, may identify thatthe other account is associated with the location, and/or the like. Forexample, as a user of user device 210 drives near a hotel, user device210 may provide, for display, account information for the hotel.

In some implementations, account identification platform 230 may performan action to generate, in an electronic wallet associated with userdevice 210, a virtual transaction card for the other account. Forexample, the virtual transaction card may be associated with the otheraccount.

In some implementations, account identification platform 230 mayreceive, from user device 210 that is associated with an individual,information that indicates that the individual has accessed anapplication, executing on user device 210, related to a third party. Inthis case, account identification platform 230 may perform an action toprovide, to the application, account information for an accountassociated with the third party after receiving the information thatindicates that the individual has accessed the application.Additionally, or alternatively, account identification platform 230 mayreceive information that indicates that user device 210 that isassociated with an individual is accessing a website associated with athird party. In this case, account identification platform 230 mayprovide account information for an account associated with the thirdparty to user device 210 for display.

In some implementations, account identification platform 230 may performan action to update the other account based on the account information.For example, account identification platform 230 may update a record toreflect rewards points received for a transaction (e.g., to claimrewards points). Continuing with the previous example, accountidentification platform 230 may provide a message to server device 220that stores account information for the other account to update theaccount information with the received rewards points.

In some implementations, user device 210 may detect that a user of userdevice 210 is communicating with another user of another user device 210regarding a vacation (e.g., based on text, audio, and/or the like ofmessages exchanged between user device 210 and the other user device210). In some implementations, user device 210 may provide, for display,account information from an electronic wallet based on the content ofthe messages exchanged between user device 210 and the other user device210. For example, user device 210 may provide account information for ahotel loyalty/rewards program, for a rental car loyalty/rewards program,and/or the like.

Additionally, or alternatively, user device 210 may detect that a userof user device 210 has accessed a webpage of a third party, and mayautomatically provide, for display, account information for the thirdparty. For example, if a user of user device 210 has accessed a websitefor a travel fare aggregator, user device 210 may provide for displayaccount information related to an airline, a hotel chain, a rental carcompany, and/or the like.

Additionally, or alternatively, user device 210 may providenotifications for display that are sorted based on one or more factors(e.g., a preference of a user of user device 210, a quantity of pointsassociated with an account, etc.). For example, user device 210 maydetect that user device 210 is at a location that is a thresholdproximity from one or more hotels, and user device 210 may provide, fordisplay, notifications related to account information for the one ormore hotels (e.g., where the account information with the most points islisted first).

In this way, account identification platform 230 may perform an actionrelated to the account information, the other account, and/or themessages.

Although FIG. 4 shows example blocks of process 400, in someimplementations, process 400 may include additional blocks, fewerblocks, different blocks, or differently arranged blocks than thosedepicted in FIG. 4. Additionally, or alternatively, two or more of theblocks of process 400 may be performed in parallel.

FIG. 5 is a diagram of an example implementation 500 related to exampleprocess 400 shown in FIG. 4. As shown in FIG. 5, example implementation500 may include account identification platform 230, server device 220,and user device 210. Example implementation 500 is an example ofidentifying particular messages that include account information. Asshown by reference number 510, account identification platform 230 mayreceive access information from user device 210. As shown by referencenumber 520, account identification platform 230 may process messages foridentifiers that identify third parties associated with the messages.For example, account identification platform 230 may process themessages in a manner similar to that described elsewhere herein.

As further shown in FIG. 5, and as shown by reference number 530,account identification platform 230 may tag and/or store messages thatare associated with particular third parties (e.g., that includeidentifiers that identify the third parties). In this way, accountidentification platform 230 may identify the messages as beingassociated with particular third parties. As shown by reference number540, account identification platform 230 may process tagged and/orstored messages for account information associated with accounts relatedto the third parties. For example, account identification platform 230may process the tagged and/or stored messages for particular termsand/or phrases that identify accounts, balances for accounts, and/or thelike. As shown by reference number 550, account identification platform230 may provide the account information to user device 210 for display(e.g., via an application, an electronic wallet, etc.).

As indicated above, FIG. 5 is provided merely as an example. Otherexamples are possible and may differ from what was described with regardto FIG. 5.

FIG. 6 is a diagram of an example implementation 600 related to exampleprocess 400 shown in FIG. 4. As shown in FIG. 6, example implementation600 may include account identification platform 230, user device 210,and a wireless beacon device. In some implementations, the wirelessbeacon device may be deployed at a particular location, such as a retaillocation, a geographic location, and/or the like. Alternatively, insteadof a wireless beacon device, example implementation 600 may include asmart poster, a quick response (QR) code affixed to a poster or a sign,and/or the like.

As further shown in FIG. 6, and as shown by reference number 610, thewireless beacon device may provide location information to user device210 when user device 210 is in communicative proximity to the wirelessbeacon device. For example, the location information may identify alocation of the wireless beacon device, such as a set of coordinates, ageographic location, a brick-and-mortar location for an organization,and/or the like. As shown by reference number 620, user device 210 mayprovide the location information to account identification platform 230.As shown by reference number 630, account identification platform 230may identify account information based on the location of user device210. For example, if the location information indicates that user device210 is at the location of a particular hotel chain (or within aparticular distance of the particular hotel chain), then accountidentification platform 230 may identify account information for anaccount associated with the particular hotel chain.

As shown by reference number 640, account identification platform 230may provide the account information to user device 210 for display(e.g., via an electronic wallet associated with user device 210).Additionally, or alternatively, account identification platform 230 mayprovide a push notification informing a user of user device 210 that theuser has an account for a third party (e.g., for the particular hotelchain) and requesting an indication by the user as to whether the userwants to access and/or utilize the account information associated withthe account. As shown by reference number 650, user device 210 maydisplay the notification via a display of user device 210.

As indicated above, FIG. 6 is provided merely as an example. Otherexamples are possible and may differ from what was described with regardto FIG. 6.

In this way, account identification platform 230 may extract accountinformation from messages and may populate an electronic wallet with theaccount information. This facilitates aggregation of account informationin a manner not possible by a human actor. In addition, this reduces oreliminates a need for a user of user device 210 to search throughmessages for the account information, thereby conserving processingresources of user device 210, improving use of the account information,and/or the like. Further, this improves a speed at which the accountinformation can be retrieved, thereby improving an efficiency of usingthe account information.

The foregoing disclosure provides illustration and description, but isnot intended to be exhaustive or to limit the implementations to theprecise form disclosed. Modifications and variations are possible inlight of the above disclosure or may be acquired from practice of theimplementations.

As used herein, the term component is intended to be broadly construedas hardware, firmware, or a combination of hardware and software.

Some implementations are described herein in connection with thresholds.As used herein, satisfying a threshold may refer to a value beinggreater than the threshold, more than the threshold, higher than thethreshold, greater than or equal to the threshold, less than thethreshold, fewer than the threshold, lower than the threshold, less thanor equal to the threshold, equal to the threshold, or the like.

It will be apparent that systems and/or methods, described herein, maybe implemented in different forms of hardware, firmware, or acombination of hardware and software. The actual specialized controlhardware or software code used to implement these systems and/or methodsis not limiting of the implementations. Thus, the operation and behaviorof the systems and/or methods were described herein without reference tospecific software code—it being understood that software and hardwarecan be designed to implement the systems and/or methods based on thedescription herein.

Even though particular combinations of features are recited in theclaims and/or disclosed in the specification, these combinations are notintended to limit the disclosure of possible implementations. In fact,many of these features may be combined in ways not specifically recitedin the claims and/or disclosed in the specification. Although eachdependent claim listed below may directly depend on only one claim, thedisclosure of possible implementations includes each dependent claim incombination with every other claim in the claim set.

No element, act, or instruction used herein should be construed ascritical or essential unless explicitly described as such. Also, as usedherein, the articles “a” and “an” are intended to include one or moreitems, and may be used interchangeably with “one or more.” Furthermore,as used herein, the term “set” is intended to include one or more items(e.g., related items, unrelated items, a combination of related andunrelated items, etc.), and may be used interchangeably with “one ormore.” Where only one item is intended, the term “one” or similarlanguage is used. Also, as used herein, the terms “has,” “have,”“having,” or the like are intended to be open-ended terms. Further, thephrase “based on” is intended to mean “based, at least in part, on”unless explicitly stated otherwise.

What is claimed is:
 1. A method, comprising: processing, by a device, amessage associated with a messaging account to identify accountinformation associated with a third party account; storing, by thedevice and based on processing the message, the account information;receiving, by the device and from a user device associated with themessaging account, data indicating that the user device has accessed anapplication or website associated with the third party account; andproviding, by the device and based on receiving the data, informationthat causes display of at least a portion of the account information inassociation with the application or the website.
 2. The method of claim1, wherein: the account information comprises an identifier thatuniquely identifies the third party account; and the portion of theaccount information includes the identifier.
 3. The method of claim 1,wherein the messaging account comprises: an email account, a textmessaging account, or an instant messaging account.
 4. The method ofclaim 1, further comprising: identifying the message, from a pluralityof messages in the messaging account, based on a source of the message.5. The method of claim 1, wherein processing the message comprises:processing the message using a natural language processing technique toidentify the account information.
 6. The method of claim 1, furthercomprising: requesting, from a server device associated with themessaging account, access to the message via an application programminginterface associated with the server device.
 7. The method of claim 1,further comprising: tagging a set of messages, from a plurality ofmessages associated with the messaging account, as being associated witha plurality of third parties, the set of messages including the message;and wherein processing the message comprises: processing the messagebased on a particular tag associated with the message.
 8. A device,comprising: one or more memories; and one or more processors,communicatively coupled to the one or more memories, configured to:process a message associated with a messaging account to identifyaccount information associated with a third party account; store, basedon processing the message, the account information; receive, from a userdevice associated with the messaging account, data indicating that theuser device has accessed an application or website associated with thethird party account; and provide, based on receiving the data,information that causes display of at least a portion of the accountinformation in association with the application or the website.
 9. Thedevice of claim 8, wherein: the account information comprises anidentifier that uniquely identifies the third party account; and theportion of the account information includes the identifier.
 10. Thedevice of claim 8, wherein the messaging account comprises: an emailaccount, a text messaging account, or an instant messaging account. 11.The device of claim 8, wherein the one or more processors are furtherconfigured to: identify the message, from a plurality of messages in themessaging account, based on a source of the message.
 12. The device ofclaim 8, wherein the one or more processors, when processing themessage, are configured to: process the message using a natural languageprocessing technique to identify the account information.
 13. The deviceof claim 8, wherein the one or more processors are further configuredto: request, from a server device associated with the messaging account,access to the message via an application programming interfaceassociated with the server device.
 14. The device of claim 8, whereinthe one or more processors are further configured to: tag a set ofmessages, from a plurality of messages associated with the messagingaccount, as being associated with a plurality of third parties, the setof messages including the message; and wherein the one or moreprocessors, when processing the message, are configured to: process themessage based on a particular tag associated with the message.
 15. Anon-transitory computer-readable medium storing a set of instructions,the set of instructions comprising: one or more instructions that, whenexecuted by one or more processors of a device, cause the device to:process a message associated with a messaging account to identifyaccount information associated with a third party account; store, basedon processing the message, the account information; receive, from a userdevice associated with the messaging account, data indicating that theuser device has accessed an application or website associated with thethird party account; and provide, based on receiving the data,information that causes display of at least a portion of the accountinformation in association with the application or the website.
 16. Thenon-transitory computer-readable medium of claim 15, wherein: theaccount information comprises an identifier that uniquely identifies thethird party account; and the portion of the account information includesthe identifier.
 17. The non-transitory computer-readable medium of claim15, wherein the messaging account comprises: an email account, a textmessaging account, or an instant messaging account.
 18. Thenon-transitory computer-readable medium of claim 15, wherein the one ormore instructions further cause the device to: identify the message,from a plurality of messages in the messaging account, based on a sourceof the message.
 19. The non-transitory computer-readable medium of claim15, wherein the one or more instructions, that cause the device toprocess the message, cause the device to: process the message using anatural language processing technique to identify the accountinformation.
 20. The non-transitory computer-readable medium of claim15, wherein the one or more instructions further cause the device to:request, from a server device associated with the messaging account,access to the message via an application programming interfaceassociated with the server device.